package com.ccys.cms.service.userManagement;

import com.ccys.common.vo.ResponseResult;
import com.ccys.db.dto.userManagement.DoctorAppointmentSettingDto;
import com.ccys.db.dto.userManagement.DoctorDto;
import com.ccys.db.entity.TblDoctor;
import com.ccys.db.entity.TblDoctorConsultFee;
import com.ccys.db.rely.service.BaseService;
import com.ccys.db.vo.userManagement.*;
import com.github.pagehelper.PageInfo;

import java.text.ParseException;
import java.util.List;

/**
 * @program: WhiteCoat
 * @description: 医生接口
 * @author: ZhangJingCan
 * @create: 2023-12-18 16:36
 **/
public interface DoctorService extends BaseService<TblDoctor> {
    ResponseResult saveDoctor(DoctorDto dto) throws ParseException;

    ResponseResult updateDoctorStatus(DoctorDto dto);

    ResponseResult deleteDoctor(DoctorDto dto);

    ResponseResult updateDoctorLoginStatus(DoctorDto dto);

    ResponseResult updateDoctorDispOrder(DoctorDto dto);

    ResponseResult<PageInfo<DoctorPageQueryVo>, Object> findPageDoctor(DoctorDto dto);

    ResponseResult saveDoctorRosterSetting(DoctorDto dto);

    ResponseResult saveDoctorSchedule(DoctorAppointmentSettingDto dto);

    ResponseResult deleteDoctorSchedule(DoctorAppointmentSettingDto dto);

    ResponseResult<List<DoctorAppointmentSettingFindListVo>, Object> findListDoctorSchedule(DoctorDto dto);

    ResponseResult<List<TblDoctorConsultFee>, Object> findListDoctorConsultFee(TblDoctorConsultFee dto);

    ResponseResult<DoctorDetailsVo, Object> findDoctorDetailsByDoctorId(DoctorDto dto);

    ResponseResult<PageInfo<DoctorInfoFavouritePrescriptionPageVo>, Object> findDoctorInfoFavouritePrescription(DoctorDto dto);

    ResponseResult<List<DoctorInfoFlagPatientVo>, Object> findDoctorInfoFlagPatient(DoctorDto dto);

       /**
        * @description 查询可选择医生列表
        * @date     2023/12/27
        * @author   cloud fly
        */
    ResponseResult listSelect(DoctorDto dto);

    ResponseResult<List<DoctorYearOfPracticeListVo>, Object> doctorYearOfPractice();

    ResponseResult<List<DoctorFindListSelectVo>, Object> findListByCountryId(DoctorDto dto);

    String getCode();
}
